#pragma once
#ifndef _FORT_APPLICATION_H
#define _FORT_APPLICATION_H

namespace fort
{
	//-- forward declarations
	class Platform;

	//-- Main application functions
	class Application
	{
	public:
		Application(Platform& platform);
		virtual ~Application();
		void Run();
		virtual void Init() = 0;
		virtual void CleanUp() = 0;
		virtual bool Update(float ticks) = 0;
		virtual void Render() = 0;

	protected:
		class Platform& platform;

	private:
		bool running;
	};
}

#endif // _ABFW_APPLICATION_H